Generally computer applications require thorough testing to eliminate the bugs or errors. Several different approaches may be used for testing the computer applications. One conventional approach, generally referred to as beta testing, involves distributing the application to groups of users, who use the application and report the errors to software developers. Although this approach of testing is commonly used in the software industry, it can be very time consuming. In addition, beta testing can be extremely difficult to control, particularly when a large number of users are involved in testing. Furthermore, due to the non-systematic use of the application, identification of every error may not be possible.
Another conventional technique for verifying and testing the applications involves using automated software testing alone or in combination with beta testing. Automatic testing generally consists of dynamically verifying that a program is consistent with a detailed specification of its behavior. The automatic testing software executes repeatedly with various inputs that are set to a value or a range. The inputs can be, for example, alpha-numeric values. However, generation of automatic testing software generally requires access to the source code of the application. In addition, such automatic testing software requires an in-depth knowledge of the application. Further, once the errors are determined, the developer is required to track down the exact code causing that error and correct it.
In light of the above discussion, techniques are therefore desirable to interactively test the computer applications.